package com.dev.base;


/**
 * 基础语法
 *
 * @author 戴 骥
 * @date 2021-08-18 20:51
 */
public class BaseMainTest {
    public static void main(String[] args) {

        /*
         * 实现无参数无返回值
         * 完整写法
         */
        NoReturnNoParam noReturnNoParam = () -> {
            System.out.println("ok");
        };
        noReturnNoParam.method();
        System.out.println("==========分割线==========");

        /*
         * 实现无参数无返回值
         * 精简写法
         */
        NoReturnNoParam noReturnNoParam2 = () -> System.out.println("ok");
        noReturnNoParam2.method();
        System.out.println("==========分割线==========");

        /*
         * 实现一个参数,无返回值
         * 原始写法
         */
        NoReturnOneParam noReturnOneParam = (arg) -> {
            System.out.println(arg);
        };
        noReturnOneParam.method(996);
        System.out.println("==========分割线==========");

        /*
         * 实现一个参数,无返回值
         * 精简写法
         */
        NoReturnOneParam noReturnOneParam2 = System.out::println;
        noReturnOneParam2.method(996);
        System.out.println("==========分割线==========");

        /*
         * 实现多个参数,无返回值
         * 原始写法
         */
        NoReturnMoreParam noReturnMoreParam = (a, c) -> {
            System.out.println(a + c);
        };
        noReturnMoreParam.method(1, 2);
        System.out.println("==========分割线==========");

        /*
         * 实现多个参数,无返回值
         * 精简写法
         */
        NoReturnMoreParam noReturnMoreParam2 = (a, c) -> System.out.println(a + c);
        noReturnMoreParam2.method(1, 2);
        System.out.println("==========分割线==========");

        /*
         * 实现无参数,有返回值
         * 原始写法
         */
        ReturnNoParam returnNoParam = () -> {
            return 1;
        };
        System.out.println("returnNoParam.method() = " + returnNoParam.method());
        System.out.println("==========分割线==========");

        /*
         * 实现无参数,有返回值
         * 精简写法
         */
        ReturnNoParam returnNoParam2 = () -> 1;
        System.out.println("returnNoParam2.method() = " + returnNoParam2.method());
        System.out.println("==========分割线==========");

        /*
         * 实现一个参数,有返回值
         * 原始写法
         */
        ReturnOneParam returnOneParam = (a) -> {
            return a;
        };
        System.out.println("returnOneParam.method(1) = " + returnOneParam.method(1));
        System.out.println("==========分割线==========");

        /*
         * 实现一个参数,有返回值
         * 精简写法
         */
        ReturnOneParam returnOneParam2 = (a) -> a;
        System.out.println("returnOneParam.method(1) = " + returnOneParam2.method(1));
        System.out.println("==========分割线==========");

        /*
         * 实现多个参数,有返回值
         * 原始写法
         */
        ReturnMoreParam returnMoreParam = (a, b) -> {
            return String.valueOf(a + b);
        };
        System.out.println("returnMoreParam.method(5, 6) = " + returnMoreParam.method(5, 6));
        System.out.println("==========分割线==========");

        /*
         * 实现多个参数,有返回值
         * 精简写法
         */
        ReturnMoreParam returnMoreParam2 = (a, b) -> String.valueOf(a + b);
        System.out.println("returnMoreParam.method(5, 6) = " + returnMoreParam2.method(5, 6));
    }
}
